//
//  CZStatus.h
//  XinLang_OC
//
//  Created by WONG on 16/3/10.
//  Copyright © 2016年 cheuhui. All rights reserved.
//

#import <Foundation/Foundation.h>
@class CZUser;
@class CZStatus;

@interface CZStatus : NSObject

/**
 *  微博创建时间
 */
@property (nonatomic,copy) NSString *created_at;
/**
 *  微博ID
 *  注意这里不能用int,因为返回来的id值，已经超过int类型的范围
 */
//@property(nonatomic,assign)long int id;
@property(nonatomic,strong) NSNumber *id;
/**
 *  微博信息内容
 */
@property (nonatomic,copy) NSString *text;

/// 微博属性文本（带表情）
@property(nonatomic,copy) NSAttributedString *attrText;

/**
 *  微博来源
 */
@property (nonatomic,copy) NSString *source;
/**
 *  微博 缩略图 图片地址数组: 数组里面存放的是字典
 */
@property (nonatomic,strong) NSArray *pic_urls;
/**
 *  大图的URL数组
 */
@property(nonatomic,strong) NSMutableArray<NSURL *> *largeStorePictureURLs;
/**
 *  缩略图NSURL数组
 */
@property(nonatomic,strong) NSMutableArray<NSURL *> *storePictureURLs;
/**
 *  计算,当模型是原创微博的时候返回原创微博对应的大图URL,如果是转发微博,返回被转发微博的大图URL
 */
@property(nonatomic,strong) NSMutableArray<NSURL *> *largePictureURLs;

/**
 *  用户模型, 如果不做特殊处理,KVC会将返回数据中的字典赋值给user, 普通的属性使用KVC赋值,如果是user属性,我们拦截,不使用KVC赋值,我们自己来字典转模型,在赋值给 user
 */
@property (nonatomic,strong) CZUser *user;
/**
 *  转发数
 */
@property(nonatomic,assign) int reposts_count;
/**
 *  评论数
 */
@property(nonatomic,assign) int comments_count;
/**
 *  表态数（赞）
 */
@property(nonatomic,assign) int attitudes_count;
/**
 *  缓存行高，优化性能
 */
@property(nonatomic,assign)CGFloat rowHeight;
/**
 *  缩略图NSURL数组
 */
@property (nonatomic,strong) NSMutableArray *pictureURLs;
/**
 *  被转发的微博
 */
@property (nonatomic,strong) CZStatus *retweeted_status;





/**
 *  字典转模型
 */
- (instancetype)initWithDict:(NSDictionary *)dict;

+ (instancetype)StatusWithDict:(NSDictionary *)dict;

/**
 *  获取微博数据，字典转模型
 */
+ (void)loadStatus:(void (^)(NSArray *statuses, NSError *error))finished;
/**
 *  加载微博数据
 *  - parameter since_id: 若指定此参数，则返回ID比since_id大的微博（即比since_id时间晚的微博），默认为0。
 *  - parameter max_id:   若指定此参数，则返回ID小于或等于max_id的微博，默认为0。
 *  - parameter finished: 网络请求完毕的回调
 */
+ (void)loadStatus:(NSNumber *)since_id max_id:(NSNumber *)max_id finished:(void(^)(NSMutableArray *statuses, NSError *error))finished;


/**
 *  模型根据模型是否有 retweeted_status 属性,表示转发微博,没有这个属性,原创微博
 */
- (NSString *)cellId;


@end












